Skip to content

docs: check the safety manual's traceability ids and links - #12694

Merged
tronical merged 5 commits into
masterfrom
simon/mdx
Jul 29, 2026
Merged

docs: check the safety manual's traceability ids and links#12694
tronical merged 5 commits into
masterfrom
simon/mdx

Conversation

@tronical

Copy link
Copy Markdown
Member

Two guards in the safety manual were silently ineffective.

The {#sls.…} completeness check skipped the manual's own reference chapters, so
rendering and generated-code went unchecked for missing markers, and the 14
they carried were stripped rather than turned into anchors. The traceability
matrix cited all 14 anyway, as dead links.

Nothing caught that, because starlight-links-validator skips relative links
instead of resolving them, and every internal link in the manual was relative.

Now the manual's reference/ counts as normative, and every internal link is
written from the site base so the validator that already runs actually checks it.
With nothing relative left, errorOnRelativeLinks is on, so a link that can't be
checked fails the build.

Coverage moves to 65 of 92 requirement paragraphs: the completeness check caught
two untagged normative paragraphs, which are now identified but not yet tested.

tronical added 4 commits July 29, 2026 15:49
…rpus

The completeness check skipped them: the rendering and generated-code
chapters went unchecked for missing `{#sls.…}` markers, and the 14 they
carried were stripped instead of becoming anchors.

Treat the manual's `reference/` as normative, with a `normative: false`
opt-out for navigational pages.
starlight-links-validator skips relative links, so the matrix's 92 anchor
citations went unchecked and could rot into dead anchors unnoticed.

Emit the page URLs from the site base, read from safety-site-config.mjs.
starlight-links-validator skips relative links, so these 13 went unchecked.

Write them from the site base instead.
The specification chapters were the last with relative, unchecked links,
and they must stay relative where the main documentation resolves them too.

Rewrite them from the site base while syncing, drop `<NotInSC>` blocks
there (they link to chapters the manual doesn't serve) as the
property-types pages already do, and turn on `errorOnRelativeLinks`.
Astro doesn't apply `base` to markdown links, so writing them from the
site root broke the deployed build, which serves the manual under a
versioned path: link validation rejected all 13 as pointing nowhere.

Add the base in a remark plugin instead, ahead of the validator's rehype
pass, and let every source keep writing links from the site root.
@tronical
tronical enabled auto-merge (rebase) July 29, 2026 14:06
@tronical
tronical merged commit 0703f57 into master Jul 29, 2026
48 checks passed
@tronical
tronical deleted the simon/mdx branch July 29, 2026 14:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants